import React from "react"
import ReactDOM from "react-dom/client"
// import "./jsxHandle"
// import DemoOne from "./views/DemoOne"
// import Dialog from "./components/Dialog";

/* 使用 antd 组件库 */
import {ConfigProvider} from 'antd';
import 'dayjs/locale/zh-cn';
import zhCN from 'antd/locale/zh_CN';
import 'antd/dist/reset.css';
import './index.less';

import Demo from "./views/Demo10";
/* redux */
// import store from "./store/index.js";

/* redux-toolkit */
// import store from "./store-toolkit/index"
/* mobx */
import store from "./store-mobx/index"
import {Provider} from "mobx-react"

// import App from "./App"
// import ThemeContext from "./ThemeContext";
// 使用 react-redux
// import {Provider} from "react-redux"
// 封装 react-redux
// import {Provider} from "./views/react-redux/myReactRedux"


/* 使用FastClick 解决移动端使用 click 事件的300ms延迟问题 */
import Fastclick from "fastclick"

// fetch
// import './fetchDemo'
// Object.defineProperty
// import "./defineProperty"

// 类的装饰器
// import "./decorator1"
// 类中属性 / 方法的装饰器
// import "./decorator2"

// import "./mobxDemo2"

import {HashRouter, Link, useRoutes} from "react-router-dom";

Fastclick.attach(document.body)

/* redux */

const root = ReactDOM.createRoot(document.getElementById('root'))

root.render(
    <ConfigProvider locale={zhCN}>
        {/*<HashRouter>*/}
            {/*<App/>*/}
        {/*</HashRouter>*/}
        {/*redux,redux-toolkit*/}
        {/*<Provider store={store}>*/}
            <Demo/>
        {/*</Provider>*/}

        {/*mobx  基于Provider把各个版块Store的实例，都放在上下文中 */}
        {/*<Provider {...store}>*/}
        {/*    <Demo/>*/}
        {/*</Provider>*/}
    </ConfigProvider>
)

// 为了在各个组件中，都可以把创建的 store 获取到，我们可以基于上下文的方案
// 1. 在 index.jsx 中，基于 ThemeContext.Provider 把创建的 store 放在上下文中
// 2. 因为所有组件都在 index.jsx 中渲染，可以理解为所有组件都是 index.jsx 的后代组件
//      + 基于上下文方案，获取在上下文中 store

// root.render(
//     <>
//         <Vote title={'React还是很好学的'} supNum={5} oppNum={10}>
//
//         </Vote>
//     </>
// )
//
// setTimeout(() => {
//     root.render(
//         <>
//             <Vote title={'我是五秒后传递的标题'}/>
//         </>
//     )
// },5000)